﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using WaterRevenueMS.Componnent.Common;
using WaterRevenueMS.Domain.ViewModels.Customer.MeterInfo;
using WaterRevenueMS.Domain.ViewModels.DataAuditing;
using System.Linq.Expressions;
using WaterRevenueMS.Componnent.Entities.Customer;

namespace WaterRevenueMS.Core.Service.Customer
{
    public interface IMeterInfoService
    {
        IQueryable<WaterRevenueMS.Componnent.Entities.Customer.MeterInfo> MeterInfos { get; }

        OperationResult Insert(MeterInfoModel model);

        OperationResult Update(MeterInfoModel model);

        OperationResult Update(WaterRevenueMS.Componnent.Entities.Customer.MeterInfo meterInfo);

        OperationResult Update(DataAuditingModel model);
        //计量结算
        OperationResult ChargeSettlement(Expression<Func<MeterInfo, Boolean>> expr);
        /// <summary>
        /// 逻辑删除
        /// </summary>
        /// <param name="Id"></param>
        /// <returns></returns>
        OperationResult Delete(int Id);
    }
}
